package cc.rengu.igas.route.core.realize;

import cc.rengu.igas.route.common.entity.RuleCfg;
import cc.rengu.igas.route.core.model.ProdInfoBean;
import cc.rengu.igas.route.core.model.RouterReq;

import java.util.List;

/**
 * 路由选择实现接口
 *
 * @author xionglz
 * @version 1.0
 * @date 2020-03-31
 */
public interface RouterChoice {

    /**
     * 路由选择接口
     *
     * @param ruleCfg   路由规则入口配置
     * @param routerReq 路由请求
     * @return List<ProdInfo>路由成功返回按照得分从高到底排序的可能的通道，null或者size为0理由失败
     * @throws Exception 异常
     */
    List<ProdInfoBean> routerChoice(RuleCfg ruleCfg, RouterReq routerReq) throws Exception;
}
